package sysTask

import (
	"context"
	"donkey-admin/internal/consts"
	"donkey-admin/internal/dao"
	"donkey-admin/internal/model/entity"
	"github.com/gogf/gf/v2/frame/g"
)

// GetSysTask 根据ID获取sysTask表记录
func (sysTaskService *SysTaskService) GetSysTask(ctx context.Context, ID string) (entity.SysTask, error) {
	var task entity.SysTask
	err := dao.SysTask.Ctx(ctx).Where("uuid = ?", ID).Scan(&task)
	return task, err
}

// UpdateTaskStatus 根据id修改任务状态
func (sysTaskService *SysTaskService) UpdateTaskStatus(ctx context.Context, id int, status consts.SysTaskStatus) (err error) {
	_, err = dao.SysTask.Ctx(ctx).Where("uuid", id).Update(g.Map{
		"status": status,
	})
	return err
}

// ActiveSysTaskList 获取所有激活任务
func (sysTaskService *SysTaskService) ActiveSysTaskList(ctx context.Context) ([]entity.SysTask, error) {
	var tasks []entity.SysTask

	if err := dao.SysTask.Ctx(ctx).Where("status", consts.Enabled).Scan(&tasks); err != nil {
		g.Log().Error(ctx, err)
		return nil, err
	}
	return tasks, nil
}
